package main

import "fmt"

func main() {
	node := &Node{}

	node.Add(1)
	node.Add(2)
	node.Add(3)
	node.Add(4)
	node.Add(5)

	node.Range()
}

// 链表结构
type Node struct {
	Value int
	Next  *Node
	Prev *Node
}

// 增
func (n *Node) Add(v int) {
	for n.Next != nil { // 后一项不为空的时候，光标后移
		n = n.Next
	}
	n.Next = &Node{Value: v}
}

// 删
func (n *Node) Delete(v int) {
	for ;n.Next != nil; {
		if n.Next.Value != v {
			n=n.Next
			continue
		}
		n.Next = n.Next.Next
	}
}

// 遍历
func (n *Node) Range() {
	for ; n.Next != nil; n = n.Next {
		fmt.Print(n.Next.Value, " ")
	}
}
